using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("AssetReference")]
	public class AssetReference : MonoClass
	{
		public string guid => method_4("guid");

		public string m_fileName => method_4("m_fileName");

		public AssetReference(IntPtr address, string className)
			: base(address, className)
		{
		}

		public AssetReference(IntPtr address)
			: this(address, "AssetReference")
		{
		}

		public static AssetReference CreateFromAssetString(string assetString)
		{
			return MonoClass.smethod_15<AssetReference>(TritonHs.MainAssemblyPath, "", "AssetReference", "CreateFromAssetString", new object[1] { assetString });
		}

		public static AssetReference CreateFromAssetPath(string assetPath, bool printWarnings)
		{
			return MonoClass.smethod_15<AssetReference>(TritonHs.MainAssemblyPath, "", "AssetReference", "CreateFromAssetPath", new object[2] { assetPath, printWarnings });
		}

		public static AssetReference op_Implicit(string input)
		{
			return MonoClass.smethod_16<AssetReference>(TritonHs.MainAssemblyPath, "", "AssetReference", "op_Implicit", new Class276.Enum20[1] { Class276.Enum20.String }, new object[1] { input });
		}

		public static string op_Implicit(AssetReference assetRef)
		{
			return MonoClass.smethod_13(TritonHs.MainAssemblyPath, "", "AssetReference", "op_Implicit", new Class276.Enum20[1] { Class276.Enum20.Class }, assetRef);
		}

		public new string ToString()
		{
			return method_13("ToString");
		}

		public void FromAssetString(string assetString)
		{
			method_8("FromAssetString", assetString);
		}

		public string GetAssetPath()
		{
			return method_13("GetAssetPath");
		}

		public string GetLegacyAssetName()
		{
			return method_13("GetLegacyAssetName");
		}
	}
}
